Data Validation 是屬於研發階段的驗證程序。Data Verification 是屬於製造階段的驗證程序,本文先討論 Data Verification 資料驗證。
資料驗證是掌握資料品質的手段。
「品質」是描述事務現況的名詞,而要把「品質」量化成數字,必定要經過三道程序才能產生:
資料驗證要先掌握「分項的資料品質」,才能進行「資料特定方面的優化作業」,而前兩者都必須要透過「多維度的資料驗證」來達成。
因此,擁有一個完整的資料驗證框架,分項地拆解出不同層面的「資料品質」現況,企業才能有計劃性地修正資料品質。綜合 DAMA 與其他研究機構的架構,具有實作可行性的資料驗證框架如下:
圖片來源:炬識科技繪製
根據驗證維度的泛用性進行排序。金字塔圖由下而上,越下面的業務單位參與越少,越上面的需要具備深厚商業領域知識者的參與,分層說明如下:
Syntactic Accuracy 資料格式準確性
某欄的值要完全符合或盡量靠近系統格式或結構上的要求,或者欄位內值須符合特定語義上的規則。例如:欄位須為 vchar 型別,長度最大為 8。
Completeness 資料完整性
資料內容無所缺漏,或兩份資料的內容必須相同。例如:checksum(MD5)、資料筆數、均值、最大最小值、Null、空白值位置是否相同。
Uniqueness 資料唯一性
在資料不該重複的前提下,資料的唯一程度。例如:對兩筆完全相同的資料執行去重複作業。
Timeliness 資料及時性
資料的更新間隔,符合資料使用上的時限要求。例如:確保資料必須要在來源系統更新的兩天內,完成後續系統的資料處理、傳輸與更新作業。
Consistence 資料關聯一致性
兩個不同欄位的值,必須具備特定邏輯上的關聯。例如:表 A 欄國家欄位為台灣,B 欄縣市欄位應為台北、高雄...等。
Semantic Accuracy 資料內容準確性
某欄位的值要完全吻合或盡量靠近「正確答案」,或者欄位內值須處於某一值域。例如:生理女性的中華民國身分證字號第二碼應為 2。各位覺得這個很簡單嗎?如果我們把「非二元性別」考慮進去呢?這是屬於國家政策層級,我們需要考慮的領域不只是 IT, 還包含業務與法規。
Validity 企業合規性
欄位的值必須合於企業要求。因為產業競爭會導致企業尋求差異性,以建立核心競爭力,這些業務上的差異會顯現在資料面(企業活動的軌跡),即使屬於完全競爭的相同產業,也會需要某種程度的客製化。
統一的資料品質監控會是目前較簡單的解決方法。
[註記]本文基於我同事 Jim Lin 在內部專案的研究成果。